#include <stdio.h>
/**
 * 本例意在说明函数声明和函数原型的不一样。
 * 以下是函数声明，并非原型，当这里打开的时候，编译并不会报错，但是pound(f)这句执行出来是不对的
*/
void pound();// ANSI函数原型声明
/**
 * 以下是函数原型，把上面的声明注释掉，把这里的原型打开，pound(f)就能正常打印。
 * 我们可以看到，其实这两者的汇编有微小的不一致。
*/
// void pound(int);
int main(void)
{
    int times = 5;
    char ch = '!'; // ASCII码是33
    float f = 6.0f;
    // 打印5次#
    pound(times); // int类型的参数
    // 打印33次
    pound(ch); // 和pound((int)ch);相同
    // 如果使用函数原型，打印6次
    // 如果使用函数声明，打印的个数是随机的
    pound(f); // 和pound((int)f);相同
    return 0;
}
void pound(int n) // ANSI风格函数头
{ // 表明该函数接受一个int类型的参数
    while (n-- > 0)
    printf("#");
    printf("\n");
}